@Library('jenkins-shared-lib') _   // 使用最新版本，不加 @tag

def appName = params.appName
def appConfig = app.getAppConfig(appName)


pipeline {
    agent any
    // 设置全局选项
    options {
        // 构建超时时间设置为 1 小时
        timeout(time: 1, unit: 'HOURS')
        // 保持最近 10 次构建记录
        buildDiscarder(logRotator(numToKeepStr: '10'))
        // 禁用并发构建
        disableConcurrentBuilds()
    }
    parameters {
        string(name: 'appName', defaultValue: 'my-service', description: 'app')
    }

    stages {
        stage('Info') {
            steps {
                script {
                    echo "${appConfig.appName}"
                    echo "Frist method:"
                    appConfig.appBuildFunc()
                    echo "Second method:"
                    appConfig.appBuildFunc.call()
                }
            }
        }
    }
}
